<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<!-- 如果需要兼容ie7及以下的JSOn操作，则可以通过引入一个外部js文件来处理 -->
		<script src="../js/140.js" type="text/javascript" ></script>  <!-- 外部文件在老师那JSON有用了-->
		<script type="text/javascript">
			/* JSON
			 JS中的对象只有JS自己认识，其它语言都不认识
			 JSON就是一个特殊格式的字符串，这个字符串可以被任意的语言所识别
			 并且可以转换为任意语言中的对象，JSON在开发中主要用来数据的交互
			 JSON javaScript Object Notation JS对象表示法
			 JSON和JS对象的格式一样，只不过JSON字符串中的属性名必须加双引号
			 其他和JS语法一致
			 JSON分类
			 1.对象{} 2.数组[]
			 JSON中允许的值
			 1.字符串 2.数值 3.布尔值 4.null 5.对象（普通对象） 6.数组
			 */
			var obj='{"name":"孙悟空","age":18,"gender":"男"}';  
			console.log(obj);
			console.log(obj.name);  //undefined
			console.log(typeof obj);
			//都是JSON
			var arr='[1,2,3,"hello",true]';
			var obj2='{"arr":[1,2,3]}';
			var arr2='[{"name":"孙悟空","age":18,"gender":"男"},{"name":"孙悟空","age":18,"gender":"男"},{"name":"孙悟空","age":18,"gender":"男"}]'
		
		
		    /* 将JSON字符串转换为JS中的对象
			在JS中，为我们提供一个工具类 ，就叫JSON
			可以将一个JSON转换为JS对象，也可以将JS转换为JSON对象*/
			console.log(JSON);
			
			var o=JSON.parse(obj);  //可以将JSON字符串转换为JS对象,需要一个JSON字符串作为参数，会将该字符串转换为JS对象返回
			console.log(o.name);
			
			var o2=JSON.parse(arr);
			console.log(o2[1]);  //输出2
			
			var obj3={name:"猪八戒",age:28,gender:"男"};
			var o3=JSON.stringify(obj3);//可以将一个JS对象转换为JSON字符串 需要一个JS对象作为参数，会返回一个JSON字符串
			console.log(o3);
			
			// JSON这个对象在IE7及以下不支持，会报错 解决兼容问题 eval() 可以执行一段字符串形式的JS代码，并将执行结果返回
			// 如果使用eval()执行的字符串中含有{}，它会将{}当成代码块
			// 如果不希望将其当成代码块解析，则需要在字符串前后各加一个()
			// eval()这个函数的功能很强大,可以直接执行一个字符串中的Js代码,但在开发中尽量不要使用,执行性能补较差,还具有安全隐患
			var str='{"name":"孙悟空","age":18,"gender":"男"}';  
			var str2="alert('hello')";
			eval(str2);
			var ss=eval(str);  //这样就是输出一个对象了()相当于{}
			console.log(ss);
			
			
			
		
		</script>
	</head>
	<body>
	</body>
</html>